//package com.example.chatweb.controller;
//
//import com.example.chatweb.entity.PdfExtract;
//import com.example.chatweb.request.ExtractPdfRequest;
//import com.example.chatweb.request.TranslateRequest;
//import com.example.chatweb.response.ExtractPdfResponse;
//import com.example.chatweb.response.TranslateResponse;
//import com.example.chatweb.service.FileService;
//import com.example.chatweb.service.PDFService;
//import com.example.chatweb.service.PdfExtractService;
//import com.example.chatweb.utils.R;
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Map;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RestController;
//
///**
// * <h3>chat-web</h3>
// *
// * @author HuangJiayu
// * @description <p>PDF解析服务控制类</p>
// * @date 2024-04-03 16:24
// **/
//
//@RestController
//@Slf4j
//public class PDFController {
//
//	@Autowired
//	private PDFService pdfService;
//
//	@Autowired
//	private PdfExtractService pdfExtractService;
//
//	@Autowired
//	private FileService fileService;
//
//
//	@PostMapping("/translate")
//	public R translate(@RequestBody TranslateRequest translateRequest) {
//		// 判断接收的prefix 是否正确
//		if (translateRequest.getPrefix() == null || translateRequest.getPrefix().isEmpty()) {
//			R.failure("传入的prefix参数为空");
//		}
//		if (!translateRequest.getPrefix().contains("translate to zh:")
//		 && !translateRequest.getPrefix().contains("translate to en:")) {
//			R.failure("传入的prefix参数不正确，只能为translate to zh:或者translate to en:");
//		}
//		// prefix检查结尾是否是空格，不然自己添加一个空格
//		if (translateRequest.getPrefix().charAt(translateRequest.getPrefix().length() - 1) != ' ') {
//			translateRequest.setPrefix(translateRequest.getPrefix() + " ");
//		}
//		//	检查翻译内容
//		if (translateRequest.getText() == null || translateRequest.getText().isEmpty()) {
//			R.failure("传入的text参数为空");
//		}
//		//	开始翻译
//		try {
//			String translation = pdfService.translate(translateRequest.getPrefix(),
//			 translateRequest.getText());
//			TranslateResponse translateResponse = new TranslateResponse();
//			translateResponse.setTranslation(translation);
//			return R.ok(translateResponse);
//		} catch (Exception e) {
//			//打印异常栈
//			log.error("调用翻译异常!! 输入prefix:" + translateRequest.getPrefix() + " 输入text:"
//			 + translateRequest.getText() + "\n" + e.getMessage(), e);
//			return R.failure("出现后端系统异常");
//		}
//	}
//
//	@PostMapping("/extract_pdf")
//	public R extractPdf(@RequestBody ExtractPdfRequest extractPdfRequest) {
//		if (extractPdfRequest.getPdfUrl() == null || extractPdfRequest.getPdfUuid() == null) {
//			return R.failure("传入的pdfUrl或pdfUuid为空");
//		}
//		try {
//			Map<String, Object> stringObjectMap = pdfExtractService.allExtract(
//			 extractPdfRequest.getPdfUuid(),
//			 extractPdfRequest.getPdfUrl());
//			//	判断是否解析完成
//			ExtractPdfResponse extractPdfResponse = new ExtractPdfResponse();
//			if ((Boolean) stringObjectMap.get("finish")) {
//				// 将列表返回
//				extractPdfResponse.setSuccess(true);
//				extractPdfResponse.setImages(
//				 convertObjectToListString(stringObjectMap.get("images")));
//				extractPdfResponse.setTables(
//				 convertObjectToListString(stringObjectMap.get("tables")));
//				extractPdfResponse.setFormulas(
//				 convertObjectToListString(stringObjectMap.get("formulas")));
//			} else {
//				extractPdfResponse.setSuccess(false);
//			}
//			return R.ok(extractPdfResponse);
//		} catch (Exception e) {
//			log.error("解析PDF异常!!" + e.getMessage(), e);
//			return R.failure("出现后端系统异常");
//		}
//	}
//
//	private List<String> convertObjectToListString(Object list) {
//		List<String> tmp = new ArrayList<>();
//		if (list instanceof ArrayList<?>) {
//			for (Object object : (ArrayList<?>) list) {
//				tmp.add(object.toString());
//			}
//		}
//		return tmp;
//	}
//
//	// 检查 pdfUuid 是否存在
//	private boolean isExistPdfUuid(Long pdfUuid) {
//		PdfExtract pdfExtract = pdfExtractService.getById(pdfUuid);
//		return pdfExtract != null;
//	}
//
//}
